#ifndef __KERNEL_IMAGE_H__
#define __KERNEL_IMAGE_H__

typedef struct
{
  unsigned long base_addr_low;
  unsigned long base_addr_high;
  unsigned long length_low;
  unsigned long length_high;
  unsigned long type;
} memory_map;

typedef struct
{
    char* cmdline;
    void* initrd_addr;
    void* initrd_length;
    unsigned mem_lower;
    unsigned mem_upper;
    memory_map* mmap_addr;
    unsigned mmap_length;
    unsigned mmap_size;
} boot_info;

typedef struct
{
    void* loadaddr;
    void (*entry) (boot_info*);
    void* bss_start;
    void* bss_end;
} kernel_image;

#endif
